#ifndef IMGSHEET_H_
#define IMGSHEET_H_

// By: Jesse Guarascia de Urena
// Image Sheet Class
// Deals with images that are composed of multiple images

#include "Img.h"
#include "Sprite.h"
#include "DebugSys.h"
#include <vector>

class ImgSheet : public Asset
{
private:
	Rect** frame; // Frame array
	int totalRows, totalColumns; // Size of the array
	float frameWidth, frameHeight; // Frame sizes
	Sprite sheet; // Actual sheet sprite

	void DeleteFrames(); // Delete the frame array

public:
	ImgSheet(void);
	~ImgSheet(void);

	void SetSheet(int imageID, int rows, int columns); // Set the image for the sheet
	void RenderFrame(Rect pos, int row, int column); // Render a specific frame

	// Get the properties of the frame array
	inline int TotalRows() { return totalRows; }
	inline int TotalColumns() { return totalColumns; }
	inline float FrameWidth() { return frameWidth; }
	inline float FrameHeight() { return frameHeight; }

	// Debug the image sheet
	std::string Debug();
};

#endif // IMGSHEET_H_

